import pygame
from pygame.locals import *
from Carro import *
from Pista import *
from Configuracao import *
import time
from sys import exit
import os

config = Configuracao()
#objeto que contém a configuração do jogo.

pygame.init()

pygame.display.set_caption(config.caption)
#Mostra um texto na barra de título.
tela = pygame.display.set_mode(config.resolucao)
#define a resolução da tela em pixels.

tela_inicial = pygame.image.load(os.getcwd()+os.sep+"imagens"+os.sep+"tela_inicial.png")
#carrega a tela inicial no programa
tela.blit(tela_inicial,(0,0))
#atualiza a imagem da tela inicial na tela do jogo
pygame.display.flip()
#atualiza a tela


while 1: 
#laço para escolha do carro que o usuário quer jogar
    pygame.event.get()    
    tecla_pressionada = pygame.key.get_pressed()
    if tecla_pressionada[K_g]:
        imagemCarro = pygame.image.load(os.getcwd()+os.sep+"imagens"+os.sep+"c1.png")
        break
    elif tecla_pressionada[K_b]:
        imagemCarro = pygame.image.load(os.getcwd()+os.sep+"imagens"+os.sep+"c2.png")
        break
    elif tecla_pressionada[K_r]:
        imagemCarro = pygame.image.load(os.getcwd()+os.sep+"imagens"+os.sep+"c3.png")
        break
    elif tecla_pressionada[K_ESCAPE]:
        pygame.quit()
        break
  

imagemPista = pygame.image.load(os.getcwd()+os.sep+"imagens"+os.sep+"pista.png")
# intancia a imagem da pista.
pista = Pista(imagemPista)
tela.blit(pista.getImagem(),(0,pista.getAltura()))
#carrega a imagem na tela.
carro = Carro(175,300,imagemCarro)
# cria o objeto carro.
tela.blit(carro.getImagem(),(carro.getX(),carro.getY()))
#carrega a imagem na tela.

pygame.display.flip()
#atualiza a tela.
 
#pygame.key.set_repeat(100, 100)

cont = 0
#Contador utilizado para mudar a posição da pista.
 
while True:
    cont+=1
    for evento in pygame.event.get():
        pass

#cria lista com com as teclas do teclado (0 ou 1)
    tecla_pressionada = pygame.key.get_pressed()

#se tela ESC precionada saia 
    if tecla_pressionada[K_ESCAPE]:
        pygame.quit()
        break
    
 
    teclaPressionada = pygame.key.get_pressed()
 
    if teclaPressionada[K_LEFT]:
        carro.moverEsquerda()
 
    if teclaPressionada[K_RIGHT]:
        carro.moverDireita()

    if cont == 5:
        cont = 0
        pista.mover()
        
    tela.blit(pista.getImagem(),(0,pista.getAltura()))
    #atualiza a imagem da pista na tela.
    tela.blit(carro.getImagem(),(carro.getX(),carro.getY()))
    #atualiza a imagem do carro na tela.

    #tela.fill((0,0,0))
    

    pygame.display.flip()
    #pygame.display.update()

